From 716d0617c936b721deb6fc2212add0acca58af32 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Sat, 17 Mar 2007 16:56:39 +0000 Subject: [PATCH] Work around bug in Python's inspect module -- catch an IndexError exception if the source-code lookup fails. Signed-off-by: Ewan Mellor --- tools/python/xen/xend/XendLogging.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/python/xen/xend/XendLogging.py b/tools/python/xen/xend/XendLogging.py index 6d6140188d..3d6b678f1d 100644 --- a/tools/python/xen/xend/XendLogging.py +++ b/tools/python/xen/xend/XendLogging.py @@ -59,6 +59,18 @@ if 'TRACE' not in logging.__dict__: return filename, frame[2] logging.Logger.findCaller = findCaller + # Work around a bug in Python's inspect module: findsource is supposed to + # raise IOError if it fails, with other functions in that module coping + # with that, but some people are seeing IndexError raised from there. + if hasattr(inspect, 'findsource'): + real_findsource = getattr(inspect, 'findsource') + def findsource(*args, **kwargs): + try: + return real_findsource(*args, **kwargs) + except IndexError, exn: + raise IOError(exn) + inspect.findsource = findsource + log = logging.getLogger("xend") -- 2.30.2